'''
pandas：
基于numpy为了解决数据分析任务而创建的一种工具
pandas纳入了大量库和一些标准的数据模型
提供了高效的操作大型结构化数据所需要的工具
pandas核心数据结构：
Series——一维的数组，index名称可以自己改动，类似于定长的有序字典，有index和value
DataFrame
'''
# Series对象的创建
import pandas as pd
import  numpy as np

#创建一个空的Series
s =pd.Series()
#从ndarray创建一个Series
data = np.array(["张三","李四","王五","""赵六"""])
s = pd.Series(data)#使用默认index，从0开始
s = pd.Series(data,index=['101','102','103','104'])#下标可以自己改
print(s['101'])
#s = pd.Series(data,index=[101,102,103,104])  不能是数字类型
print(s[0])#但仍然有默认下标


#通过字典创造Series对象
data = {'s01':"jack",'s02':"tom",'s03':"rose",'s04':"jhon"}
s = pd.Series(data)
print(s['s03'])

#通过标量创建Series对象
s = pd.Series(5,index=[0,1,2,3,4])
print(s[0],s[1],s[2],s[3],s[4])

#创建一个Series对象，储存100个“jack”数据
s =pd.Series('jack',index=range(0,100))
print(s[98])

print("===================================")

#Series对象的数据访问
data = {'s01':"jack",'s02':"tom",'s03':"rose",'s04':"jhon"}
s = pd.Series(data)
print(s[1],s['s02'])
#取出前三个元素
print(s[0:3])
#取出 jack tom jhon --->掩码
mask = [True,True,False,True]
print(s[mask])
print(s['s02':'s04'])
#Series对象的常用属性
print(s.values)
print(s.index)
print("====================================================")
#Series的时间操作
data = pd.Series(['2021','2021-8','2021-8-29','2021-8-29 14:45:33','2021/8/29','29 Aug 2021'])
datas = pd.to_datetime(data)
print(datas)
print(datas.dt.month)#月份，默认为1
print(datas.dt.day)#日期，默认为1
print(datas.dt.weekday)#星期，从0开始
print(datas.dt.quarter)#季度，默认为1

#测试日期计算
delta = datas-pd.to_datetime('1970-1-1')
print(delta)
print(delta.dt.days)